package mysql

import (
	"fmt"
	// "database/sql"
	// _ import "github.com/go-sql-driver/mysql"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

var (
	DB *gorm.DB
)

// 初始化连接数据库
// db, err = sql.Open("mysql","root:vansing2022@tcp(192.168.0.11:3306)/videos?charset=utf8")
func InitDb(username, password, ip, dbname string) error {
	if nil != DB {
		return nil
	}

	dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, ip, dbname)
	// db, err := sql.Open("mysql", dsn)
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil{
		fmt.Println(err)
		return err
	}
	DB = db
    // // 设置数据库最大连接数
	// db.SetConnMaxLifetime(100)
    // // 设置上数据库最大闲置连接数
	// db.SetMaxIdleConns(10)
	
    // // 验证连接
	// if err := DB.Ping(); err != nil {
	// 	fmt.Println("open mysql database fail")
	// 	return err
	// }
	return nil
}

func GetDb() *gorm.DB {
	return DB
}
